<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text">
    <script>
        // 利用闭包实现防抖的一个方法
        // 防抖 用户触发时间过于频繁，只要最后一次事件
        // let inp = document.querySelector('input');
        // let t = null;
        // inp.oninput = function(){
        //     if(t !==null){
        //         clearInterval(t)
        //     }
        //     t = setTimeout(() =>{
        //         console.log(this.value);
        //     },500)
        // }




        // 封装后的
        let inp = document.querySelector('input');
 
        inp.oninput = debounce(function () {
            console.log(this.value);
        }, 500)

        function debounce(fn,delay) {
            let t = null;
            return function () {
                if (t !== null) {
                    clearInterval(t)
                }
                t = setTimeout(() => {
                    fn.call(this);
                }, delay)
            }
        }

    </script>
</body>

</html>